package day10;

// 井字棋（N*N）
// N*N：横竖斜（主副）和为N

public class Main3 {
    public boolean checkWon(int[][] board) {
        // write code here
        // 1.首先检查每一行
        int len = board.length;
        int sum = 0;
        for (int i = 0; i < len; i++) {
            for (int j = 0; j < len; j++) {
                sum += board[i][j];
            }
            // 一行结束，判断是否获胜
            if(sum == len) {
                return true;
            }
        }

        // 2.然后检查每一列
        sum = 0;
        for (int i = 0; i < len; i++) {
            for (int j = 0; j < len; j++) {
                sum += board[j][i];
            }
            if (sum == len) {
                return true;
            }
        }

        // 3.检查主对角线
        sum = 0;
        for (int i = 0; i < len; i++) {
            sum += board[i][i];
        }
        if (sum == len) {
            return true;
        }

        // 4. 检查副对角线
        sum = 0;
        for (int i = 0; i < len; i++) {
            sum += board[i][len-i-1];
        }
        if(sum == len) {
            return true;
        }

        return false;
    }
}
